package com.hjqjl.common_lib.utils;

import com.blankj.utilcode.util.StringUtils;

/**
 * 字符串相关工具类
 */
public class StringUtil {

    private StringUtil() {
        throw new UnsupportedOperationException("u can't instantiate me...");
    }

    /**
     * 字符串拼接,线程安全
     */
    public static String buffer(String... array) {
        StringBuffer s = new StringBuffer();
        for (String str : array) {
            s.append(str);
        }
        return s.toString();
    }

    /**
     * 字符串拼接,线程不安全,效率高
     */
    public static String builder(String... array) {
        StringBuilder s = new StringBuilder();
        for (String str : array) {
            s.append(str);
        }
        return s.toString();
    }

    /**
     * 生成6位随机数
     */
    public static String random6() {
        StringBuilder strRand = new StringBuilder();
        for (int i = 0; i < 6; i++) {
            strRand.append(String.valueOf((int) (Math.random() * 10)));
        }
        return strRand.toString();
    }

    /**
     * 获取从start开始用*替换len个长度后的字符串
     *
     * @param str   要替换的字符串
     * @param start 开始位置
     * @param len   长度
     * @return 替换后的字符串
     */
    public static String getMaskStr(String str, int start, int len) {
        if (StringUtils.isEmpty(str) || str.length() < start) {
            return str;
        }
        // 获取*之前的字符串
        StringBuilder ret = new StringBuilder(str.substring(0, start));
        // 获取最多能打的*个数
        int strLen = str.length();
        if (strLen < start + len) {
            len = strLen - start;
        }
        // 替换成*
        for (int i = 0; i < len; i++) {
            ret.append("*");
        }
        // 加上*之后的字符串
        if (strLen > start + len) {
            ret.append(str.substring(start + len));
        }
        return ret.toString();
    }

    /**
     * 截取后缀
     *
     * @param img_path 带后缀的url地址等
     * @return 后缀名
     */
    public static String getPicSuffix(String img_path) {
        if (img_path == null || !img_path.contains(".")) {
            return ""; //如果图片地址为null或者地址中没有"."就返回""
        }
        return img_path.substring(img_path.lastIndexOf(".")).
                trim().toLowerCase();
    }
}